home *** CD-ROM | disk | FTP | other *** search
- unit fchained;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, HTTPApp;
-
- type
- TWebModule1 = class(TWebModule)
- procedure HandleAction1(Sender: TObject;
- Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
- procedure HandleAction3(Sender: TObject;
- Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
- procedure HandleAction2(Sender: TObject;
- Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
- procedure WebModule1BeforeDispatch(Sender: TObject;
- Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
- procedure WebModule1AfterDispatch(Sender: TObject;
- Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- WebModule1: TWebModule1;
-
- implementation
-
- {$R *.DFM}
-
- procedure TWebModule1.HandleAction1(Sender: TObject;
- Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
- begin
- // if Sender is the Default WebDispatcher action item ...
- if (Sender as TWebActionItem).Default then
- Response.Content := Response.Content +
- '<LI>' + (Sender as TWebActionItem).Name + ' (default handler)</LI>'
- else
- Response.Content := Response.Content +
- '<LI>' + (Sender as TWebActionItem).Name + '</LI>';
- Handled := (Sender as TWebActionItem).Name = 'WebActionItem3';
- // to activate the default handling uncomment the following line
- //Handled := (Sender as TWebActionItem).Default;
- end;
-
- procedure TWebModule1.HandleAction2(Sender: TObject;
- Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
- begin
- Response.Content := Response.Content +
- '<LI>' + (Sender as TWebActionItem).Name + '</LI>';
- // try experimenting with different values of Sender.Name to see
- // how many of the chained event handlers get to handle the Request
- Handled := (Sender as TWebActionItem).Name = 'WebActionItem5';
- end;
-
- procedure TWebModule1.HandleAction3(Sender: TObject;
- Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
- begin
- Response.Content := Response.Content +
- '<LI>' + (Sender as TWebActionItem).Name + '</LI>';
- Handled := (Sender as TWebActionItem).Name = 'WebActionItem9';
- end;
-
- procedure TWebModule1.WebModule1BeforeDispatch(Sender: TObject;
- Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
- begin
- Response.Content := '<HTML><HEAD><TITLE>Chained Action Items Demo' +
- '</TITLE></HEAD><BODY><H2>Web dispatcher is ' +
- (Sender As TWebModule).Name + '</H2><HR>Action items triggered were<UL>';
- //Handled := True; // setting this to True and sending the response
- //Response.SendResponse; // ends the application here
- end;
-
- procedure TWebModule1.WebModule1AfterDispatch(Sender: TObject;
- Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
- begin
- Response.Content := Response.Content + '</UL><HR></BODY></HTML>';
- Handled := True; // setting this to False will cause no response to be sent
- end;
-
- end.
-